- 主PY文件写视图函数,带id参数。
@app.route('/detail/<question_id>') def detail(question_id): quest = return render_template('detail.html', ques = quest)
- 首页标题的标签做带参数的链接。 { { url_for('detail',question_id = foo.id) }}
- 在详情页将数据的显示在恰当的位置。
{ { ques.title}} { { ques.id }}{ { ques.creat_time }}
{ { ques.author.username }} { { ques.detail }}
-
建立评论的对象关系映射:
class Comment(db.Model):
__tablename__='comment' -
尝试实现发布评论。
class Comment(db.Model): _tablename_='comment' id=db.Column(db.Integer,primary_key=True,autoincrement=True) author_id=db.Column(db.Integer,db.ForeignKey('User.id')) question_id=db.Column(db.Integer,db.ForeignKey('question.id')) detail=db.Column(db.Text,nullable=False) creatTime=db.Column(db.DateTime,default=datetime.now) question=db.relationship('Question',backref=db.backref('comments',order_by=creatTime.desc)) author=db.relationship('User',backref=db.backref('comments'))#db.create_all()@app.route('/')def home(): context={ 'question': Question.query.all() } return render_template('shouye.html',**context)@app.route('/question_detail/')def question_detail(question_id): question = Question.query.filter(Question.id == question_id).first() return render_template('question_detail.html',question=question)@app.route('/comment/',methods=['GET','POST'])# @loginFirstdef comment(): if request.method == 'GET': return render_template('question_detail.html') else: detail = request.form.get('detail') author_id =User.query.filter(User.username == session.get('user')).first().id #question_id=Question.query.filter(Question.authorID ==author_id).first().id #question=Question.query.filter(Question.authorID == session.get('question')).first() #user = User.query.filter(User.username == session.get('user')).first() comments = Comment(detail=detail,author_id=author_id,question_id=question_id) #comments.question=question #comments.author = user db.session.add(comments) db.session.commit() return redirect(url_for('home'))if __name__ == '__main__': app.run(debug=True)
{% extends'base.html' %}{% block title %} Home{% endblock %}{% block head %} {% endblock %}{% block main %}{% endblock %}{ { question.title }}
{ { question.author.username }} { { question.creatTime }}
{ { question.detail }}
评论:({
{ question.comments|length }}){% for foo in question.comments %} { { foo.author.username }} { { foo.creatTime }}
{
{ foo.detail }} {% endfor %}